package com.xianyun.site.support.domain.model;

import com.alibaba.cola.domain.Entity;
import lombok.Data;
import org.springframework.util.DigestUtils;
import javax.validation.constraints.NotEmpty;
import java.util.Date;

/**
 * @author macos-zyj
 */
@Entity
@Data
public class ReceiveMessage {
    private String sendId;
    /** 操作名称 */
    private String operateName;
    private String conditionName;
    /**
     * 操作码
     * 第1位为用户类型 第二位为操作类型 第三位为系统模块 第四位为 功能模块 第五位为类型 0 短信 1邮件 ...... 可根据情况扩展 第 6-n 位为预留扩展字段
     * 类似于 1-1-1-1-0 解释为 普通用户 校验 用户系统  短信
     * 则为用户系统中普通用户发起的短信校验行为
     * */
    @NotEmpty(message = "操作码不能为空")
    private String operateCode;
    @NotEmpty(message = "事务ID不能为空")
    private String transactionId;
    /**当前时间*/
    private Date currentTime;
    @NotEmpty(message = "SessionID不能为空")
    private String sessionId;

    public String getRedisCheckKey(){
        return getRedisCheckKey(null);
    }

    public String getRedisCheckKey(String suffix){
        String checkKey=this.operateCode+ this.sessionId +suffix;
        return DigestUtils.md5DigestAsHex(checkKey.getBytes());
    }

}
